/**
 * ● 策略模式</br>
 * 封装:负责对扣款策略进行封装，保证两个策略可以自由切换，而且日后增加扣款策略也非常 简单容易。</br>
 * ● 工厂方法模式 </br>
 * 暴露:修正策略模式必须对外暴露具体策略的问题，由工厂方法模式直接产生一个具体策略对 象，而其他模块则不需要依赖具体的策略。 </br>
 * ● 门面模式</br>
 * 封装:负责对复杂的扣款系统进行封装，封装的结果就是避免高层模块深入子系统内部，同时 提供系统的高内聚、低耦合的特性。
 * 我们主要使用了这三个模式，它们的好处是灵活、稳定，我们可以设想一下可能有哪些 业务变化。</br>
 * ● 扣款策略变更</br>
 * 增加一个新扣款策略，三步就可以完成：实现IDeduction接口，增加StrategyMan配置
 * 项，扩展扣款策略的利用（也就是门面模式的getDeductionType方法，在实际项目中这里只
 * 需要增加数据库的配置项）。减少一个策略很简单，修改扣款策略的利用即可。变更一个扣 款策略也很简单，扩展一个实现类口就可以了。 ●
 * 变更扣款策略的利用规则</br>
 * 
 * @author kongmou
 * @date 2018年2月28日上午10:08:55
 * @since jdk 1.8
 * 
 * @version 1.0
 */
package twentyThreePattern.zMixed.factory_strategy;